1. The Field of the Invention
The present invention relates to computing technology; and more specifically, to mechanisms for efficiently broadcasting common groups of data blocks to a plurality of primary computing systems in which one common group of data blocks may be common among a different set of the primary computing systems than another common group of data blocks.
2. Background and Related Art
Computing technology has transformed the way we work and play. Businesses, residences, and other enterprises have come to rely on computing systems to manage their key operational data. Often, the data itself is many times more valuable to an enterprise than the computing hardware that stores the data. Accordingly, in this information age, many enterprises have taken precautions to protect their data.
One way of protecting data is to introduce storage redundancy. For example, a primary computing system maintains and operates upon the active data. Meanwhile, a backup computing system maintains a copy of the data as the active data existed at a previous instant in time. The backup copy of the data is periodically updated. More frequent updates tend to increase the freshness of the data at the backup computing system.
At some point, the data at the primary computing system may become inaccessible or otherwise lost. For example, the data may become corrupted due to a system failure or viral infiltration. Software (such as the operating system, application, or drivers) needed to access the data may also be corrupted. Furthermore, hardware needed to access the data may become damaged. For instance, the disk drive or computing system may become damaged by a wide variety or realistic scenarios. The computing system may be dropped in the case of a portable system, or may even be intentionally harmed by a user or passerby. A wide variety of possible natural disasters may also harm the primary computing system. Whatever causes the failure, recovery occurs by restoring or replacing any needed hardware for the primary computing system, and then copying disk sectors from the backup computing system back to the primary computing system.
In larger enterprises, there may be many primary computing systems that may need to have restored access to data and other computing functionality. When recovering data access after such a failure, time is money. Depending on the enterprise size and operation, each minute without operational data may mean thousands, or even millions, of dollars in lost revenue. Enterprises that are serious about disaster recovery typically have elaborate plans for how to quickly acquire replacement telephone lines, office space, and computer hardware.
Once all the physical building blocks of a site are assembled, backups from the destroyed site are restored as quickly as possible to bring key servers back to an operational state, and then systems management software redeploys a standard image to desktops. An important limiting factor in the restore process is the sheer amount of data that is read from I/O on the backup computing system resource hosting the backups, pushed across the network, and written to waiting hard drives of the primary computing systems.
To demonstrate how time consuming this restoration can be, suppose that a data center has 100 servers that each uses 100 gigabytes (GB) of storage. In that scenario, 10 terabytes (TB) of data is read from the backup, transferred to the servers, and written to the server hard drives before the servers can be brought online. The time required to transfer this data can be mitigated by using disk-to-disk technology, faster networks, backups with improved read speeds, and servers with faster write speeds, but much time is still wasted.
Accordingly, what would be advantageous are mechanisms for quickly recovering data access to multiple primary computing systems.